//里氏替换原则  尽可能使用父类和抽象类
//然后可以使用父类的地方都可以使用子类
export { }
//抽象类
abstract class AbsrtractDrink {
  abstract getPrice(): number;
};
class CoCola extends AbsrtractDrink{
  getPrice(): number{
    return 3
  }
}
class CoFe extends AbsrtractDrink{
  getPrice(): number{
    return 5
  }
};
class  Customer {
  drink(abtractDrink:AbsrtractDrink) {
    console.log('花费',abtractDrink.getPrice())
  }
};
//里氏替换  可以用子类替换用父类的地方，他是一个原则，要求子类不能违反父类的规定和功能
let c1 = new Customer();
// c1.drink(new AbsrtractDrink())
c1.drink(new CoCola())
c1.drink(new  CoFe())